home *** CD-ROM | disk | FTP | other *** search
/ Loadstar 204 / 204.d81 / zip 64 (.txt) < prev    next >
Encoding:
Commodore BASIC  |  2001-01-01  |  13.2 KB  |  474 lines

  1. 999 end
  2. 1000 bs=40960:fl$="file name.zml":goto1630
  3. 1010 b=peek(ad):ad=ad+1:ifb=32then1010
  4. 1020 return
  5. 1030 aa=ad
  6. 1040 b=peek(aa):aa=aa+1:ifb=32then1040
  7. 1050 return
  8. 1060 gosub1010:ifb<>0thenprintb:goto1730
  9. 1070 return
  10. 1080 n=0
  11. 1090 gosub1010:ifb<48 or b>57 then return
  12. 1100 n=n*10+(b-48):goto1090
  13. 1110 nh=int(nn/256):nl=nn-(nh*256):return
  14. 1120 gosub1110:print mid$(hx$,(nhand240)/16+1,1);mid$(hx$,(nhand15)+1,1);
  15. 1130 printmid$(hx$,(nland240)/16+1,1);mid$(hx$,(nland15)+1,1);:return
  16. 1140 bx=bx+1:ifp<>3 then ml=ml+1:return
  17. 1150 poke ml,z:ml=ml+1:return
  18. 1160 ifp<>1thensp=sp+1:sl=sl+1:return
  19. 1170 pokesp,z:sp=sp+1:sl=sl+1:return
  20. 1180 ifp<>3thenreturn
  21. 1190 dx=dx+1:poke dw,nl:poke dw+1,nh:dw=dw+2:return
  22. 1200 gosub1010:ifb>64then1220
  23. 1210 g=1:ad=ad-1:gosub1080:ad=ad-1:nn=n:goto1240
  24. 1220 gosub1250
  25. 1230 g=0:b=b-65:nn=(b*2)+679
  26. 1240 b=peek(ad):gosub1110:return
  27. 1250 if(b<65 or b>90)then5360
  28. 1260 return
  29. 1270 z=173:gosub1140:z=nl:gosub1140:z=nh:goto1140
  30. 1280 z=173:gosub1140:z=nl+1:gosub1140:z=nh:goto1140
  31. 1290 z=141:gosub1140:z=nl:gosub1140:z=nh:goto1140
  32. 1300 z=141:gosub1140:z=nl+1:gosub1140:z=nh:goto1140
  33. 1310 z=169:gosub1140:z=nl:goto1140
  34. 1320 z=169:gosub1140:z=nh:goto1140
  35. 1330 z=173
  36. 1332 gosub1140:z=vl:gosub1140:z=vh:goto1140
  37. 1340 z=173
  38. 1342 gosub1140:z=vl+1:gosub1140:z=vh:goto1140
  39. 1350 z=141:gosub1140:z=vl:gosub1140:z=vh:goto1140
  40. 1360 z=141:gosub1140:z=vl+1:gosub1140:z=vh:goto1140
  41. 1370 nl=ms(h,0):nh=ms(h,1):return
  42. 1380 gosub1140:z=nl:gosub1140:z=nh:goto1140
  43. 1390 gosub1140:z=nl+1:gosub1140:z=nh:goto1140
  44. 1400 gosub1140:z=nl:goto1140
  45. 1410 gosub1140:z=nh:goto1140
  46. 1420 z=165:gosub1140:z=y:goto1140
  47. 1430 z=162:gosub1140:z=y:goto1140
  48. 1440 z=161:gosub1140:z=y:goto1140
  49. 1450 z=145:gosub1140:z=y:goto1140
  50. 1460 z=160:gosub1140:z=y:goto1140
  51. 1470 z=133:gosub1140:z=y:goto1140
  52. 1480 z=56:goto1140
  53. 1490 z=24:goto1140
  54. 1500 z=32:gosub1140:z=yl:gosub1140:z=yh:goto1140
  55. 1510 z=76:gosub1140:z=yl:gosub1140:z=yh:goto1140
  56. 1520 z=233:gosub1140:z=nl:goto1140
  57. 1530 z=233:gosub1140:z=nh:goto1140
  58. 1540 z=105:gosub1140:z=nl:goto1140
  59. 1550 z=105:gosub1140:z=nh:goto1140
  60. 1560 z=237:gosub1140:z=nl:gosub1140:z=nh:goto1140
  61. 1570 z=237:gosub1140:z=nl+1:gosub1140:z=nh:goto1140
  62. 1580 z=109:gosub1140:z=nl:gosub1140:z=nh:goto1140
  63. 1590 z=109:gosub1140:z=nl+1:gosub1140:z=nh:goto1140
  64. 1600 z=y1:gosub1140:z=y2:goto1140
  65. 1610 z=y1:gosub1140:z=y2:gosub1140:z=y3:goto1140
  66. 1620 z=169:gosub1140:z=y:goto1140
  67. 1625 poke56333,127:poke1,peek(1)and251:poke768,167:poke769,2:return
  68. 1627 poke1,peek(1)or4:poke56333,129:poke768,v1%:poke769,v2%:return
  69. 1630 lx=3:xx=0:zp=bs+80:p=1:zm=zp:sk=-1:v1%=peek(768):v2%=peek(769)
  70. 1640 dim ll%(999,1),fs(6,4),li%(lx,5),ms(5,3),oc%(3,1)
  71. 1650 gosub5500:sys759
  72. 1660 fori=0tolx:forj=0to5:readli%(i,j):next:next:bx=0:dx=0:f2=0
  73. 1670 ad=peek(43)+peek(44)*256:gosub1627:print"[147]          ***** pass";p;" *****"
  74. 1680 sp=zp:ml=zm
  75. 1690 nm=peek(ad)+peek(ad+1)*256
  76. 1700 ln=peek(ad+2)+peek(ad+3)*256:ifln>999then1740
  77. 1710 gosub1627:print"          compiling line #"mid$(str$(ln),2):gosub1625
  78. 1720 ifp=2thenll%(xx,0)=ln:ll%(xx,1)=ml-32768:xx=xx+1
  79. 1730 ad=ad+4:gosub1010:goto1790
  80. 1740 ifp=1thenp=2:zm=sp:r1=zm:la=sp:u1=bx:bx=0:goto1670
  81. 1750 ifp=2thenp=3:zm=la:r2=zm:gosub5420:db=la+bx+4:dw=db:u2=bx:bx=0:goto1670
  82. 1760 u3=bx:gosub4760:gosub1627:print"done!":gosub1625
  83. 1770 ifpeek(ml-1)<>96thenz=96:gosub1140
  84. 1780 gosub1627:goto4450
  85. 1790 ifb=136then3610:rem let
  86. 1800 ifb=153then2020:rem print
  87. 1810 ifb=128then2300:rem end
  88. 1820 ifb=137then2170:rem goto
  89. 1830 ifb=141then2230:rem gosub
  90. 1840 ifb=142then2300:rem return
  91. 1850 ifb=139then2320:rem if
  92. 1860 ifb=151then2600:rem poke
  93. 1870 ifb=129then2710:rem for
  94. 1880 ifb=130then2960:rem next
  95. 1890 ifb=135then3320:rem read
  96. 1900 ifb=140then3420:rem restore
  97. 1910 ifb=131then3470:rem data
  98. 1920 ifb=156then3510:rem clr
  99. 1930 ifb=143then2000:rem rem
  100. 1940 ifb=161then3530:rem get
  101. 1950 ifb=158then4300:rem sys
  102. 1960 rem this line assumes let
  103. 1970 ad=ad-1:goto3610
  104. 1980 sysbs:end
  105. 1990 fori=0toxx-1:printll%(i,0),ll%(i,1)+32768:next
  106. 2000 ad=nm:goto1690
  107. 2010 rem handle print
  108. 2020 gosub1010:ifb=199then3250
  109. 2030 ifb>64 then2110
  110. 2040 ifb<>34then2150
  111. 2050 sl=0:nn=sp:gosub1110
  112. 2060 b=peek(ad):ad=ad+1:if((b=0)or(b=34))then2080
  113. 2070 z=b:gosub1160:goto2060
  114. 2080 gosub1310:y=34:gosub1470:gosub1320:y=35:gosub1470
  115. 2090 y=sl:gosub1430:yl=61:yh=3:gosub1500:gosub1010:ifb<>59then2150
  116. 2095 goto2000
  117. 2100 rem handle print <var>
  118. 2110 ifb<65 or b>91 then5360
  119. 2120 b=b-65:nn=(b*2)+679:gosub1110:gosub1010:w=b
  120. 2130 gosub1280:z=174:gosub1380:yl=55:yh=3:gosub1500:ifw<>59then2150
  121. 2135 goto2000
  122. 2140 rem handle print <cr>
  123. 2150 yl=64:yh=3:gosub1500:goto2000
  124. 2160 rem handle goto <line number>
  125. 2170 gosub1080:if p<>3 then2210
  126. 2180 ifxx=0then5380
  127. 2190 f2=0:fori=0to(xx-1):ifll%(i,0)=nthenf2=1:nn=ll%(i,1)+32768
  128. 2200 next:iff2=0then5380
  129. 2210 gosub1110:yl=nl:yh=nh:gosub1510:goto2000
  130. 2220 rem handle gosub <line number>
  131. 2230 gosub1080:if p<>3 then2210
  132. 2240 ifxx=0then5380
  133. 2250 f2=0:fori=0to(xx-1):ifll%(i,0)=nthenf2=1:nn=ll%(i,1)+32768
  134. 2260 next:iff2=0then5380
  135. 2270 gosub1110:z=32:gosub1140:z=nl:gosub1140:z=nh:gosub1140:goto2000
  136. 2280 gosub1110:yl=nl:yh=nh:gosub1500:goto2000
  137. 2290 rem handle return
  138. 2300 z=96:gosub1140:goto2000
  139. 2310 rem handle if
  140. 2320 gosub1010:ifb<65 or b>90 then5360
  141. 2330 b=b-65:nn=(b*2)+679:gosub1110:vh=nh:vl=nl
  142. 2340 gosub1010
  143. 2350 ifb=177thenf1=1:goto2390:rem >
  144. 2360 ifb=178thenf1=2:goto2390:rem =
  145. 2370 ifb=179thenf1=3:goto2390:rem <
  146. 2380 goto5360:rem syntax error
  147. 2390 f3=0:gosub1010:ifb<65then2420
  148. 2400 gosub1250:f3=1:b=b-65:nn=(b*2)+679:gosub1110:goto2430
  149. 2410 rem if <var> <=> <num or var>
  150. 2420 ad=ad-1:gosub1080:ad=ad-1:nn=n:gosub1110
  151. 2430 gosub1480:gosub1330:iff3thengosub1560:goto2450
  152. 2440 gosub1520
  153. 2450 y=2:gosub1470:gosub1340:iff3thengosub1570:goto2470
  154. 2460 gosub1530
  155. 2470 y1=5:y2=2:gosub1600
  156. 2480 iff1<>3then2500
  157. 2490 y1=240:y2=5:gosub1600:y1=176:y2=3:gosub1600:goto2530
  158. 2500 iff1<>2then2520
  159. 2510 y1=208:y2=3:gosub1600:goto2530
  160. 2520 y1=144:y2=5:gosub1600:y1=240:y2=3:gosub1600:goto2530
  161. 2530 gosub1010:ifb<>167then5360
  162. 2540 gosub1080:if p<>3 then2580
  163. 2550 ifxx=0then5380
  164. 2560 f2=0:fori=0to(xx-1):ifll%(i,0)=nthenf2=1:nn=ll%(i,1)+32768
  165. 2570 next:iff2=0then5380
  166. 2580 gosub1110:yl=nl:yh=nh:gosub1510:goto2000
  167. 2590 rem handle poke
  168. 2600 gosub1200:vl=nl:vh=nh:tt=g:gosub1010:ifb<>44then5360
  169. 2610 gosub1200:iftttheny=vh:gosub1430:y=vl:gosub1460:goto2630
  170. 2620 z=174:gosub1342:z=172:gosub1332
  171. 2630 ifgthengosub1310:goto2650
  172. 2640 gosub1270
  173. 2650 yl=73:yh=3:gosub1500:goto2000
  174. 2700 rem handle for
  175. 2710 gosub1010:ifb<65 or b>90 then5360
  176. 2720 b=b-65:nn=(b*2)+679:gosub1110:vh=nh:vl=nl
  177. 2730 sk=sk+1:fs(sk,3)=nn:fs(sk,4)=0:fs(sk,1)=1
  178. 2740 gosub1010:ifb<>178then5360
  179. 2750 gosub1010:if b>64then2800
  180. 2760 rem start = constant
  181. 2770 ad=ad-1:gosub1080:nn=n:gosub1110:gosub1310:gosub1350:gosub1320:gosub1360
  182. 2780 ad=ad-1:goto2810
  183. 2790 rem start = variable
  184. 2800 b=b-65:nn=(b*2)+679:gosub1110:gosub1270:gosub1350:gosub1280:gosub1360
  185. 2810 gosub1010:ifb<>164then5360
  186. 2820 gosub1010:if b>64then2860
  187. 2830 rem to = constant
  188. 2840 ad=ad-1:gosub1080:ad=ad-1:fs(sk,0)=n:goto2870
  189. 2850 rem to = variable
  190. 2860 b=b-65:nn=(b*2)+679:fs(sk,0)=nn:fs(sk,4)=fs(sk,4) or 2
  191. 2870 fs(sk,2)=ml:gosub1010:ifb=0then2000
  192. 2880 rem handle step
  193. 2890 ifb<>169then5360
  194. 2900 gosub1010:if b>64then2940
  195. 2910 rem step = constant
  196. 2920 ad=ad-1:gosub1080:ad=ad-1:fs(sk,1)=n:goto2000
  197. 2930 rem step = variable
  198. 2940 b=b-65:nn=(b*2)+679:fs(sk,1)=nn:fs(sk,4)=fs(sk,4) or 4 : goto2000
  199. 2950 rem handle next
  200. 2960 ifsk=-1then5390
  201. 2970 nn=fs(sk,3):gosub1110:vl=nl:vh=nh
  202. 2980 nn=fs(sk,1):gosub1110
  203. 2990 gosub1490:gosub1330
  204. 3000 if(fs(sk,4)and4)=4 then3020
  205. 3010 gosub1540:goto3030
  206. 3020 gosub1580
  207. 3030 gosub1350
  208. 3040 gosub1340
  209. 3050 if(fs(sk,4)and4)=4 then3070
  210. 3060 gosub1550:goto3080
  211. 3070 gosub1590
  212. 3080 gosub1360
  213. 3090 nn=fs(sk,2):gosub1110:al=nl:ah=nh
  214. 3100 nn=fs(sk,0):gosub1110
  215. 3110 gosub1480:gosub1330
  216. 3120 if(fs(sk,4)and2)=2 then3140
  217. 3130 gosub1520:goto3150
  218. 3140 gosub1560
  219. 3150 y=2:gosub1470
  220. 3160 gosub1340
  221. 3170 if(fs(sk,4)and2)=2 then3190
  222. 3180 gosub1530:goto3200
  223. 3190 gosub1570
  224. 3200 y1=5:y2=2:gosub1600
  225. 3210 y1=240:y2=2:gosub1600:y1=176:y2=3:gosub1600
  226. 3220 yl=al:yh=ah:gosub1510
  227. 3230 sk=sk-1:goto2000
  228. 3240 rem handle print chr$()
  229. 3250 gosub1010:ifb<>40then5360
  230. 3260 gosub1010:ifb>64then3280
  231. 3270 ad=ad-1:gosub1080:y=(n and 255):gosub1620:goto3300
  232. 3280 b=b-65:nn=(b*2)+679:gosub1110
  233. 3290 gosub1270
  234. 3300 yl=58:yh=3:gosub1500:gosub1010:ifb<>59then2150
  235. 3305 goto2000
  236. 3310 rem handle read
  237. 3320 ifp<>2 then3370
  238. 3330 ifli%(1,5)=1then3350
  239. 3340 f2=1:nn=la:gosub1110:li%(1,3)=nl:li%(1,4)=nh:li%(1,5)=1:la=la+li%(1,2)
  240. 3350 ifli%(0,5)=1then3370
  241. 3360 nn=la:gosub1110:li%(0,3)=nl:li%(0,4)=nh:li%(0,5)=1:la=la+li%(0,2)
  242. 3370 gosub1010:b=b-65:nn=(b*2)+679:gosub1110
  243. 3380 yl=li%(1,3):yh=li%(1,4):gosub1500
  244. 3390 gosub1290
  245. 3400 z=142:gosub1390:goto2000
  246. 3410 rem handle restore
  247. 3420 ifp<>2then3450
  248. 3430 ifli%(0,5)=1then3450
  249. 3440 f2=1:nn=la:gosub1110:li%(0,3)=nl:li%(0,4)=nh:li%(0,5)=1:la=la+li%(0,2)
  250. 3450 yl=li%(0,3):yh=li%(0,4):gosub1500:goto2000
  251. 3460 rem handle data
  252. 3470 gosub1010:ad=ad-1:ifb=0then2000
  253. 3480 gosub1080:nn=n:gosub1110:gosub1180:ifb=44then3480
  254. 3490 goto2000
  255. 3500 rem handle clr
  256. 3510 nn=bs+64:gosub1110:yl=nl:yh=nh:gosub1500:goto2000
  257. 3520 rem handle get
  258. 3530 gosub1010:gosub1250
  259. 3540 b=b-65:nn=(b*2)+679:gosub1110:vh=nh:vl=nl
  260. 3550 yl=67:yh=3:gosub1500:gosub1290
  261. 3560 y=0:gosub1620
  262. 3570 gosub1300:goto2000
  263. 3580 rem
  264. 3590 rem handle let
  265. 3600 rem
  266. 3610 gosub1200:ifgthen5360
  267. 3620 gosub1010:if(nn<>709)or((b<>69)and(b<>79))then3630
  268. 3622 nn=847:ifb=69thennn=849
  269. 3624 gosub1110:gosub1010
  270. 3630 vl=nl:vh=nh:ifb<>178then5360
  271. 3640 gosub1030
  272. 3650 rem handle functions here
  273. 3660 ifb=194then4350: rem peek
  274. 3670 gosub1200:gosub1010:op=0
  275. 3680 ms(0,0)=nl:ms(0,1)=nh:ms(0,2)=g:ms(0,3)=nn
  276. 3690 if((b=0)or(b=58))thense=b:goto3760
  277. 3700 op=b:ro=b:ifop=175thenop=172
  278. 3710 ifop=176thenop=173
  279. 3720 ifro=172thenop=174
  280. 3730 ifro=173thenop=175
  281. 3740 gosub1200:gosub1010
  282. 3750 ms(1,0)=nl:ms(1,1)=nh:ms(1,2)=g:ms(1,3)=nn:se=b
  283. 3760 ifop<>0then3840
  284. 3770 h=0:gosub1370:ifms(0,2)then3810
  285. 3780 rem <var> = <var>
  286. 3790 gosub1270:gosub1350:gosub1280:gosub1360:goto3820
  287. 3800 rem <var> = <const>
  288. 3810 gosub1310:gosub1350:gosub1320:gosub1360
  289. 3820 ifse=58then3610
  290. 3830 goto2000
  291. 3840 if((op<170)or(op>173))then4070
  292. 3850 rem handle addition & subtraction
  293. 3860 ifms(0,2)+ms(1,2)<>2 then3920
  294. 3870 rem <var> = <const> <+-> <const>
  295. 3880 rem  gosub 500
  296. 3890 ifop=170then nn=ms(0,3)+ms(1,3):gosub1110:goto3810
  297. 3900 ifop=171then nn=ms(0,3)-ms(1,3):gosub1110:goto3810
  298. 3910 goto5360
  299. 3920 ifop=170thenz=24:gosub1140
  300. 3930 ifop=171thenz=56:gosub1140
  301. 3940 h=0:gosub1370:n1=nl:n2=nh:ifms(0,2)thengosub1310:goto3960
  302. 3950 gosub1270
  303. 3960 z=oc%(op-170,ms(1,2)):tt=z
  304. 3970 h=1:gosub1370:n3=nl:n4=nh:ifms(1,2)thengosub1400:goto3990
  305. 3980 gosub1380
  306. 3990 gosub1350
  307. 4000 nl=n1:nh=n2:ifms(0,2)thengosub1320:goto4020
  308. 4010 gosub1280
  309. 4020 z=tt:nl=n3:nh=n4:ifms(1,2)thengosub1410:goto4040
  310. 4030 gosub1390
  311. 4040 gosub1360
  312. 4050 ifse=58then3610
  313. 4060 goto2000
  314. 4070 ifop=175then4130
  315. 4080 ifop<>174then5360
  316. 4090 ifp<>2then4160
  317. 4100 ifli%(3,5)=1then4160
  318. 4110 f2=1:nn=la:gosub1110:li%(3,3)=nl:li%(3,4)=nh:li%(3,5)=1:la=la+li%(3,2)
  319. 4120 goto4160
  320. 4130 ifp<>2then4160
  321. 4140 ifli%(2,5)=1then4160
  322. 4150 f2=1:nn=la:gosub1110:li%(2,3)=nl:li%(2,4)=nh:li%(2,5)=1:la=la+li%(2,2)
  323. 4160 h=0:gosub1370:ifms(0,2)then4180
  324. 4170 gosub1270:y=5:gosub1470:gosub1280:y=6:gosub1470:goto4190
  325. 4180 gosub1310:y=5:gosub1470:gosub1320:y=6:gosub1470
  326. 4190 h=1:gosub1370:ifms(1,2)then4210
  327. 4200 gosub1270:y=3:gosub1470:gosub1280:y=4:gosub1470:goto4220
  328. 4210 gosub1310:y=3:gosub1470:gosub1320:y=4:gosub1470
  329. 4220 ifop=174then4250
  330. 4230 z=32:gosub1140:z=li%(2,3):gosub1140:z=li%(2,4):gosub1140
  331. 4240 y=5:gosub1420:gosub1350:y=6:gosub1420:gosub1360:goto4270
  332. 4250 z=32:gosub1140:z=li%(3,3):gosub1140:z=li%(3,4):gosub1140
  333. 4260 y=163:gosub1420:gosub1350:y=164:gosub1420:gosub1360
  334. 4270 ifse=58then3610
  335. 4280 goto2000
  336. 4290 rem handle sys
  337. 4300 gosub1200:ifgthen4320
  338. 4310 z=172:gosub1380:z=174:gosub1390:goto4330
  339. 4320 y=nl:gosub1460:y=nh:gosub1430
  340. 4330 z=32:gosub1140:z=70:gosub1140:z=3:gosub1140:goto2000
  341. 4340 rem handle peek
  342. 4350 gosub1010:gosub1010:ifb<>40then5360
  343. 4360 gosub1200:ifgtheny=nl:gosub1460:y=nh:gosub1430:goto4380
  344. 4370 z=172:gosub1380:z=174:gosub1390
  345. 4380 yl=76:yh=3:gosub1500
  346. 4382 gosub1350:nl=0:gosub1310:gosub1360:gosub1010:ifb<>41then5360
  347. 4390 gosub1010:ifb=58then3610
  348. 4400 goto2000
  349. 4440 rem this is file save routine
  350. 4450 gosub5440
  351. 4460 h=int(bs/256):l=bs-h*256
  352. 4470 poke253,l:poke254,h
  353. 4480 h=int((dw+2)/256):l=(dw+2)-h*256
  354. 4490 poke63,l:poke64,h
  355. 4500 dv=peek(186):ifdv<8thendv=8
  356. 4510 open2,dv,2,fl$+",p,w"
  357. 4520 poke53265,peek(53265)and239
  358. 4530 sys820
  359. 4540 print"[147]":poke53265,peek(53265)or16
  360. 4570 rem print compile info
  361. 4580 printfl$" info.":print"press p for printer (device 4),"
  362. 4582 print"any other key for screen."
  363. 4584 poke198,0:wait198,1:geta$:ifa$="p"then open 4,4,7:cmd 4
  364. 4590 print"start........ "bs
  365. 4600 print"string pool.. "zp
  366. 4610 print"runtime lib.. "sp
  367. 4620 print"code start... "la
  368. 4630 print"code end .... "db-1
  369. 4640 print"code size.... "(db-1)-la"bytes"
  370. 4660 print"data area.... "db
  371. 4670 print"prog end..... "dw+2
  372. 4680 printtab(14);"-------------------"
  373. 4690 print"total size... "(dw+2)-bs"bytes"
  374. 4710 print:print:print"     zip 64, copyright (c) 2001 by"
  375. 4720 printtab(9);"j & f  publishing inc."
  376. 4730 printtab(10);"all rights reserved"
  377. 4735 if a$="p" then print#4:close4
  378. 4740 end
  379. 4750 rem handle runtime library
  380. 4760 gosub1627:print"[147]building runtime library...":gosub1625
  381. 4770 fori=bstobs+47:pokei,0:next:fori=bs+48tobs+62:pokei,234:next
  382. 4780 pokebs+63,96:pokebs,32:nn=bs+48:gosub1110:pokebs+1,nl:pokebs+2,nh
  383. 4790 read d$:fori=1tolen(d$):pokebs+9+i,asc(mid$(d$,i,1)):next
  384. 4800 fori=bs+64tobs+74:readd:pokei,d:next
  385. 4810 pokebs+51,32:nn=bs+64:gosub1110:pokebs+52,nl:pokebs+53,nh
  386. 4820 poke bs+3,76:nn=la:gosub1110:pokebs+4,nl:pokebs+5,nh
  387. 4830 iff2<>1thenreturn
  388. 4840 fori=0tolx
  389. 4850 ifli%(i,5)<>1 then4900
  390. 4860 rem install library
  391. 4870 on(i+1)gosub5032,5062,5132,5222
  392. 4880 nt=li%(i,3)+(li%(i,4)*256):nc=li%(i,2)-1
  393. 4890 ff=0:forj=0tonc:readd:ifsgn(d)<>-1then 4896
  394. 4892 if ff=1then ff=0:d=nh:goto4896
  395. 4894 nn=abs(d)+bs:gosub1110:ff=1:d=nl
  396. 4896 pokent+j,d:next
  397. 4900 next
  398. 4910 ifli%(0,5)<>1then4940
  399. 4920 nn=db:gosub1110:pokebs+6,nl:pokebs+7,nh:nn=dw:gosub1110:pokebs+8,nl
  400. 4930 pokebs+9,nh:pokebs+48,32:pokebs+49,li%(0,3):pokebs+50,li%(0,4)
  401. 4940 return
  402. 4950 rem lib array data
  403. 4960 data 176,19,11,0,0,0 :rem restore
  404. 4970 data 206,19,43,0,0,0 :rem read
  405. 4980 data 20,20,59,0,0,0 :rem divide
  406. 4990 data 110,20,48,0,0,0 :rem multiply
  407. 5000 data "zip 64  (c) 2001 j & f publishing"
  408. 5010 data 162,88,169,0,157,167,2,202
  409. 5020 data 16,250,96
  410. 5030 rem this is library restore
  411. 5032 sys759:return
  412. 5040 data 173,-6,-1,133,65,173,-7,-1
  413. 5050 data 133,66,96
  414. 5060 rem *** this is library read ***
  415. 5062 sys759:return
  416. 5070 data 165,65,205,-8,-1,208,12,165
  417. 5080 data 66,205,-9,-1,208,5,162,13
  418. 5090 data 108,0,3,160,0,177,65,72
  419. 5100 data 200,177,65,170,24,165,65,105
  420. 5110 data 2,133,65,165,66,105,0,133
  421. 5120 data 66,104,96
  422. 5130 rem *** this is library divide ***
  423. 5132 sys759:return
  424. 5140 data 165,3,5,4,208,5,162,20
  425. 5150 data 108,0,3,169,0,133,163,133
  426. 5160 data 164,162,16,6,5,38,6,38
  427. 5170 data 163,38,164,56,165,163,229,3
  428. 5180 data 168,165,164,229,4,144,6,230
  429. 5190 data 5,133,164,132,163,202,208,227
  430. 5200 data 165,163,141,217,2,165,164,141
  431. 5210 data 218,2,96
  432. 5220 rem *** library multiply ***
  433. 5222 sys759:return
  434. 5230 data 169,0,133,165,133,166,162,16
  435. 5240 data 70,4,102,3,144,11,24,165
  436. 5250 data 165,101,5,133,165,165,166,101
  437. 5260 data 6,106,133,166,102,165,102,164
  438. 5270 data 102,163,202,208,227,165,165
  439. 5280 data 141,217,2,165,166,141,218,2
  440. 5290 data 96
  441. 5360 er$="syntax error":goto5400
  442. 5370 er$="bad command":goto5400
  443. 5380 er$="undef'd statement":goto5400
  444. 5390 er$="next without for":goto5400
  445. 5400 gosub1627:print "[error][146][154] " er$" in line"ln:end
  446. 5410 rem fixup line numbers
  447. 5420 n=r2-r1:ifn=0thenreturn
  448. 5430 fori=0toxx-1:ll%(i,1)=ll%(i,1)+n:next:return
  449. 5440 sys759:fori=820to935:readq:pokei,q:next:return
  450. 5450 data 32,204,255,162,2,32,201,255,165,253,32,210,255,165,254,32,210
  451. 5460 data 255,32,157,3,120,169,48,133,1,177,253,145,251,196,63,208,6,165
  452. 5470 data 254,197,64,240,13,200,208,239,230,254,230,252,165,252,201,8
  453. 5475 data 208,229,132,113,165,252,133,114,32,157,3,169,55,133,1,88,177,251
  454. 5480 data 32,210,255,196,113,208,6,165,252,197,114,240,14,200,208,238
  455. 5485 data 230,252,165,252,201,8,208,230,76,70,3,169,2,32,195,255,32,204
  456. 5490 data 255,96,169,0,133,251,169,4,133,252,160,0,96
  457. 5500 oc%(0,0)=109:oc%(0,1)=105:oc%(1,0)=237:oc%(1,1)=233
  458. 5510 oc%(2,0)=45:oc%(2,1)=41:oc%(3,0)=13:oc%(3,1)=9
  459. 5520 hx$="0123456789abcdef"
  460. 5530 poke759,165:poke760,61:poke761,133:poke762,65:poke763,165:poke764,62
  461. 5532 poke765,133:poke766,66:poke767,96
  462. 5540 sys759:fori=679to703:readq:pokei,q:next:poke692,v1%:poke697,v2%:return
  463. 5550 data165,1,9,4,133,1,169,129,141,13,220,88,169,139,141,0,3,169,227,141,1,3
  464. 5560 data108,0,3
  465. 9998 :
  466. 9999 rem * scratch & save *
  467. 10000 fl$="z.file name":dv=8
  468. 10001 open15,dv,15:print#15,"s0:"+fl$:close15:save fl$,dv:end
  469. 10002 :
  470. 19998 rem * list to printer *
  471. 19999 rem (set to device 4 & emulate)
  472. 20000 p=peek(646):poke646,peek(53281):print"[147]print#1:close1":poke646,p
  473. 20001 poke631,19:poke632,13:poke198,2:open1,4,7:cmd1:list-999:end
  474.